package Day8.ZuoYe;

import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

// 3。输入一个目录，求这个目录占用的空间大小（包括子目录，以及子子目录。。。）
public class Zuoye3 {
    //方法2
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println("请输入一个文件路径：");
        String s = in.nextLine();
        List<File> list = new ArrayList<>();
        File a = new File(s);
        search(list, a);
        long num = 0;
        for (int i = 0; i < list.size(); i++) {
            num = list.get(i).length() + num;
        }
        System.out.println(s + "的这个目录占用的空间大小是：" + num + "字节");
    }

    public static void search(List<File> list, File a) {
        File[] files = a.listFiles();
        if (files == null || files.length == 0)
            return;
        for (File f : files) {
            if (f.isFile()) {
                list.add(f);
            } else search(list, f);
        }
    }
    // //方法1
//    public static void main(String[] args) {
//        String s="D:\\java课程及作业";
//       File f=new File(s);
//        long d = Zuoye3.xianshi(f);
//        System.out.println(s+"的这个目录占用的空间大小是："+d+"字节");
//
//    }
//    public static long xianshi(File f) {
//        System.out.println(f.getAbsoluteFile());
//        long size = 0;
//        if (f.isDirectory()) {
//            File[] files = f.listFiles();
//            for (File b : files) {
//                size += xianshi(b);
//            }
//        }else {
//            size+=f.length();
//        }
//        return size;
//    }

}
